package com.ea.admin.service;

import com.ea.admin.pojo.param.user.AddUserItemParam;
import com.ea.admin.pojo.vo.user.UserSimpleInfoVo;
import com.ea.admin.pojo.vo.user.GetUserListVo;
import com.ea.admin.pojo.vo.user.ImportUserVo;
import com.ea.common.report.pojo.vo.ReportSimpleInfoListVo;
import com.ea.common.report.pojo.vo.UserDetailVo;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

public interface UserService {
    String CELL_HEAD = "模板数据说明：" +
            "单位名称、部门名称、职位名称需要填写系统上对应的全名；" +
            "性别只可填写“男”或“女”；" +
            "照片文件名要与压缩文件中的相应照片对应；" +
            "出生日期按“yyyy-MM-dd”格式填写；" +
            "为防止Excel自动转换格式，请全选单元格，单击右键，将单元格格式设置为“文本”；" +
            "上传文件时，请将示例数据删除。";

    GetUserListVo getUserList(Long accountId, List<Long> companyIdList, List<Long> deptIdList, List<Long> positionIdList, String name, Integer page, Integer pageSize);

    List<UserSimpleInfoVo> addUser(Long accountId, List<AddUserItemParam> addUserItemParamList);

    List<UserSimpleInfoVo> addUserFromSystem(Long accountId,String token, List<AddUserItemParam> addUserItemParamList);

    List<UserSimpleInfoVo> addTempUser(List<AddUserItemParam> addUserItemParamList);

    void editUser(Long accountId, Long userId, Long companyId, Long deptId, Long positionId, String photo, String name, String sex, Date birthday);

    void deleteUser(Long accountId, Long userId);

    void exportUser(HttpServletResponse response, Long accountId, List<Long> companyIdList, List<Long> deptIdList, List<Long> positionIdList);

    UserDetailVo getUserDetail(Long accountId, Long userId);

    ImportUserVo importUser(Long accountId, String excelMd5, String zipMd5);

    void downloadTemplate(HttpServletResponse response);

    ReportSimpleInfoListVo getWarningReportList(Long accountId, Long userId, List<Integer> warningType, Integer page, Integer pageSize);
}
